import time
import datetime
import psutil as pu
import numpy as np

"""查询CPU的状态信息"""
# 所有时间段加起来 = 系统总运行时间，即从系统开始运行的时间计算
# “把操作系统自开机以来，CPU 在各种状态下累计消耗的时间（以秒为单位的浮点数）一次性打包返回。”
cpu_times_all = pu.cpu_times(percpu=True)  # 所有核心运行时间的总和
cpu_times = cpu_times_all[0]
print('用户进程占用的CPU时间（h）：', cpu_times.user / 3600)
print('系统内核占用的CPU时间（h）：', cpu_times.system / 3600)
print('CPU的空闲时间（h）：', cpu_times.idle / 3600)
print('CPU处理硬件中断的时间（h）：', cpu_times.interrupt / 3600)
print('CPU处理延迟过程调用的时间（h）：', cpu_times.dpc / 3600)

# 计算开机到现在的总计时间（近似）
print('CPU自开机起运行的总时间：', np.round((cpu_times.user + cpu_times.system + cpu_times.idle + cpu_times.interrupt + cpu_times.dpc) / 3600, 2), 'h')

boot_time = pu.boot_time()
boot_time = datetime.datetime.fromtimestamp(boot_time)
print("开机启动时间：", boot_time.strftime('%Y-%m-%d %H:%M:%S'))












